XmlDoc を記載していない場合にワーニングとする方法

#dotnet

csproj にて GenerateDocumentationFile を有効化することでメンバーに XmlDoc が記載されていない場合に警告を発生させることができます。

例)

<Project Sdk="Microsoft.NET.Sdk.Web">  
  
    <PropertyGroup>  
        <TargetFramework>net9.0</TargetFramework>  
        <Nullable>enable</Nullable>  
        <ImplicitUsings>enable</ImplicitUsings>  
        <!-- 以下を追加する -->  
        <GenerateDocumentationFile>true</GenerateDocumentationFile>  
    </PropertyGroup>  

	<!-- 必要に応じて無効にする -->
    <PropertyGroup Condition="'$(Configuration)' == 'Release'">  
        <GenerateDocumentationFile>false</GenerateDocumentationFile>  
    </PropertyGroup>  
  
</Project>

以下のような実装をビルド

#pragma warning disable CS0414 // Field is assigned but its value is never used

public class Example
{
    public void PublicExampleMethod()
    {
    }

    public int PublicField = 0;
    internal int InternalField = 0;
    private int _privateField = 0;
    
    public int ExampleProperty { get; set; } = 0;
    internal int InternalExampleProperty { get; set; } = 0;
    private int PrivateExampleProperty { get; set; } = 0;
}

internal class InternalExample
{
    public void PublicExampleMethod()
    {
    }

    public int PublicField = 0;
    internal int InternalField = 0;
    private int _privateField = 0;
    
    public int ExampleProperty { get; set; } = 0;
    internal int InternalExampleProperty { get; set; } = 0;
    private int PrivateExampleProperty { get; set; } = 0;
}

file class PrivateExample
{
    public void PublicExampleMethod()
    {
    }

    public int PublicField = 0;
    internal int InternalField = 0;
    private int _privateField = 0;
    
    public int ExampleProperty { get; set; } = 0;
    internal int InternalExampleProperty { get; set; } = 0;
    private int PrivateExampleProperty { get; set; } = 0;
}

#pragma warning restore CS0414 // Field is assigned but its value is never used

警告発生時は以下のような表示になります。
XmlDoc を記載していない場合にワーニングとする方法-1.png

Note

GenerateDocumentationFile はその名の通り有効にするとドキュメントファイルを生成します。
場合によってはビルド時間が長くなる可能性があります。
また、プロジェクトの規模によってはドキュメントのメンテナンスに時間や労力の負担となる場合があります。用法容量を守って利用しましょう。